API de planejamento antecipado
A API Plan-ahead é destinada ao envio de cronogramas com antecedência. Para controle ao vivo, veja Controle MQTT ao Vivo em vez disso.
O que você precisa
- Um nome de usuário e senha da API. Você pode usar sua conta Insights para isso ou solicitar uma conta da API enviando um e-mail para support@eniris.be, mencionando claramente o número de série do seu dispositivo.
- Ambiente de desenvolvimento Python (ou qualquer outro cliente MQTT). Este guia usa um exemplo básico escrito em Python para ajudá-lo a começar com MQTT e envio de comandos. Recomendamos usar Python pela facilidade de uso, mas qualquer outro cliente MQTT é suportado.
Configuração inicial (Ponto de partida para novos usuários)
1. Encontre os IDs dos dispositivos que você deseja controlar
O ID do dispositivo (também chamado de nodeId) é um identificador único para cada dispositivo em nosso sistema e é usado ao enviar comandos para os dispositivos.
Atualmente, a maneira mais fácil de obter seus IDs é navegando para:
http://<CONTROLLER_IP>/debugger
Expanda a caixa 'Metadata' e anote cada nodeId de todos os dispositivos que você gostaria de controlar. Você precisará desses IDs em uma etapa posterior.

2. Adicione seus dispositivos
Faça login na interface de comissionamento e certifique-se de que os dispositivos estão adicionados ao Sofar EMS.
3. Adicione o sinal externo da API




4. Insira o token do coletor
Simplesmente insira o número de série do Sofar EMS aqui e clique em enviar.
5. Selecione dispositivos para incluir
Nesta página, você tem a opção de incluir/excluir dispositivos para controle remoto. Certifique-se de marcar todas as caixas de seleção dos dispositivos que você gostaria de incluir.

6. Fonte de dados foi adicionada
A interface de controle remoto foi ativada no Sofar EMS. Você agora pode começar a enviar seus comandos para os dispositivos.
Não se esqueça de definir um regime de fallback no Sofar EMS! Um modo de controle local precisa ser configurado além dos sinais da API externa que você envia. O controle local é usado como uma solução alternativa caso o Sofar EMS perca a internet ou haja outras causas que impossibilitem que o sinal da API chegue ao Sofar EMS.
Enviar comandos de controle remoto usando Python
Abaixo, há um trecho de Python sobre como controlar solar ou bateria.
Consulte o documento Guia de Aplicação - Configurações Remotas para uma explicação mais completa com todas as políticas.
Pacote necessário:
pip install eniris
# %% Imports
from eniris import ApiDriver
from eniris.point import Point
from eniris.point.writer import (PointDuplicateFilter, DirectPointToTelemessageWriter)
from eniris.telemessage.writer import PooledTelemessageWriter
from datetime import datetime, timezone
# %% Constants
COMMAND_UNTIL = '2024-04-16T10:26:00+02:00' # YYYY-MM-DDTHH:MM:SS+00:00
SN = '<SUBSTITUA>'
COMMAND = fields = {'policy': 2, 'powerSetpoint_W': 0.0} # 0: Padrão (auto-consumo); 2: Seguir configuração
# %% Iniciar redução
curtail_until = datetime.fromisoformat(COMMAND_UNTIL).astimezone(timezone.utc)
print(f'Seguindo comando até: {curtail_until}')
apiUsername = "<SUBSTITUA>"
apiPassword = "<SUBSTITUA>"
# Criar um driver da API e um gravador de pontos com a funcionalidade desejada
driver = ApiDriver(apiUsername, apiPassword)
writer = PointDuplicateFilter(
DirectPointToTelemessageWriter(
PooledTelemessageWriter(
authorizationHeaderFunction=driver.accesstoken,
params={"u": SN},
)
)
)
namespace = {'database': 'SGC', 'retentionPolicy': 'rp_one_s'}
tags = {
"serialNr": SN,
"nodeId": '<SUBSTITUA>',
}
writer.writePoints([Point(namespace, 'remoteControlSignals', curtail_until, tags, fields)])
writer.flush()
print('Despedido')
Preste atenção especial a:
- O 'COMMAND_UNTIL': Este é um timestamp ciente do fuso horário que denota o horário de término do seu comando.
- O 'COMMAND': Isso deve ser alterado de acordo com qual comando você gostaria de executar.
- Ex.: para baterias, política 2 com powerSetpoint_W em 1000 vai carregar a bateria a 1 kW.
- Para solar, política 2 com powerSetpoint_W em 0 desativará a produção solar.
- Após o término do seu comando, ele voltará automaticamente ao controle padrão (conforme configurado no Sofar EMS).
- (políticas mais avançadas são suportadas, mas ainda não foram adicionadas a este guia).
- A variável 'tags': Isso deve ser alterado de acordo com o SN do Sofar EMS, onde nodeId deve ser definido como o ID do dispositivo que foi extraído em uma etapa anterior deste tutorial.
Consulte o documento Guia de Aplicação - Configurações Remotas para uma explicação mais completa com todas as políticas.